iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

Hi 來到第七天,昨天已經說明了該怎麼使用 mysql 來 create 這次要用來存放 Block 的 table ,但我們還缺個可運行的 db server。

今天就來搭建一下 docker 這個好用的玩意兒吧!

How would Chat GPT Introduce Docker

Docker 是一個開源的容器化平台,旨在簡化應用程式的部署和管理。它通過將應用程式及其所有依賴包封裝在一個稱為「容器」的標準化單位內,確保應用程式可以在不同環境中一致地運行。Docker 的容器與虛擬機器不同,它們不需要整個操作系統,而是與主機共享操作系統內核,這使得容器更輕量且啟動速度更快。

自己的說法

其實 Docker 可以想像做是更輕量化的 VM ( 虛擬機) ,他不需要多餘的GUI 介面或是 Account 管理 之類的系統,完全是以最乾淨的 Linux 作為基底進行操作。

不過在使用前還是有幾樣知識需要知道:

  1. Docker 用來運行的vm,我們稱之為 container
  2. 每個 container 都需要一個 image 來做為他的作業系統
  3. container 與主機的網路是互不相連的,需要透過開放 port 的方式才能連線

主要指令操作

看完 chatGPT的簡單介紹後來整理下比較常用到的docker 指令

  • 檢查 Docker 版本

    docker --version
    
  • **啟動 Docker Container,**例如:docker run -d -p 80:80 nginx

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    
  • 列出運行中的 Container

    docker ps
    
  • 列出所有 Container(包含停止的)

    docker ps -a
    
  • 停止 Container

    docker stop CONTAINER_ID
    
  • 啟動已停止的 Container

    docker start CONTAINER_ID
    
  • 移除 Container

    docker rm CONTAINER_ID
    
  • 列出本地所有的 Docker Images

    docker images
    
  • 移除 Image

    docker rmi IMAGE_ID
    

Start Implement

上面整理完基本的指令後,我們就來搭建 mysql吧

Steps

  1. docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=<SQL的密碼> -d -p 3306:3306 mysql:latest

  2. 確認下 container 有沒有正確跑起來

    Untitled

  3. 使用自己喜歡的 SQL IDE 進行連線,連線成功即可使用 SQL

    Untitled

Create DB

接著我們就可以接續對 SQL 做 建立DB、Table 等作業

Steps

  1. Create DB
Create DataBase Blockchain;
  1. Create Table
USE Blockchain;

CREATE TABLE Blocks (
   Id INT PRIMARY KEY AUTO_INCREMENT,
   Data TEXT NOT NULL,
   Hash VARCHAR(64) NOT NULL,
   PreviousHash VARCHAR(64) NOT NULL,
   TimeStamp DATETIME NOT NULL,
   Nonce INT NOT NULL,
);

  1. Select Table
Select * from Blocks

Untitled

Conclusion

好啦,今天我們成功將DB給建立起來了,接著我們就可以透過專案針對DB 進行連線,並對她Insert 第一筆資料,不過那是明天的事情了~~~

今天進度就先到這兒。

結語: Happy Friday


上一篇
Day06 Use MySQL
下一篇
Day08 .Net EntityFramework
系列文
Side-Project:: 為自己打造個可編輯的區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言